home *** CD-ROM | disk | FTP | other *** search
- Electronic CAD (4) − Vector for PCB Design
- Richard Torrens
- I have been using DrawPlus for a long time now and it was so good that I
- never upgraded to Vector. When I was considering an upgrade from
- LinTrack, I purchased OakPCB because I had heard that it looked
- promising. As you read in last month’s review, it does indeed look
- interesting and it is fine for small circuits. However, I soon found
- that there were severe limitations and I spent about 8 months trying to
- give Oak help to overcome them. In the meanwhile, I have upgraded to
- Vector and I regret not having done so before. Vector has some special
- features which make it very good for PCB work. The latest version is
- 1.10 and some of the features mentioned here may not be present on
- earlier versions.
-
- If, as a result of this article, you buy Vector (£85 +VAT), please
- mention my name to 4Mation, so we can all assess the market for PCB CAD.
- (The same applies if you buy it through Archive at £92. Ed.) If there is
- sufficient demand, extra modifications are possible. In the meanwhile,
- as 4Mation know nothing about PCB design, I have offered them free
- technical support via Archive, so if you have problems please contact
- me.
-
- Vector was written, as was DrawPlus, by Jonathan Marten who is an
- engineer in the aerospace industry. He started using Acorn’s original
- Draw and found it lacking. So Jonathan started rewriting it. Eventually
- he was satisfied and released the new program into PD as Draw1½. This
- was gradually upgraded and became DrawPlus. Then Jonathan teamed up with
- 4Mation, who put more ideas and improvements into the melting pot.
-
- The important points are that the program was written for the
- programmer’s own use. It is a ‘live’ program which still grows. It also
- seems that JM is a very clear thinker as the program, Vector, is a very
- major work which is very well thought out, useful for doing real things
- and copes very well with a lot of tasks which JM never even considered.
- I suspect that JM is never satisfied with his own work and, however good
- it is, always seeks something better.
-
- Jonathan has also written a utility to convert my old LinTrack files to
- Vector and the resulting Vector display looks really good and prints out
- excellently (within the limitations of the original LinTrack file). I
- had initially thought that I would still use LinTrack and simply use
- Vector for printing out. I’m not so sure now − it looks as if I’ll do
- the design in Vector also.
-
- Special features
- Vector’s special features are its layers, its rulers and position
- readout, its ‘Overlay’ facility and its library. It also has facilities
- for merging and splitting objects. These all combine to make the package
- very versatile and powerful. The rest of this article is not intended as
- a review of Vector, more as instructions on how to use these features,
- with special reference to PCB design, since these features are not
- covered very well in the manual. However, they are extremely powerful
- and the description should give you some ideas for the more general use
- of these facilities.
-
- Layers − A drawfile already has ‘layers’ in that each object is drawn to
- screen as it is read from the file so that they are placed in a pile
- with the earliest object at the bottom of the pile and later ones on
- top. You can move objects to the top or to the bottom of the pile in
- Draw. You can, in Vector, also step the object one back or one forward
- in the pile. This structure has nothing to do with the ‘Layers’ of
- Vector and it is independent of Vector’s layers.
-
- The layer structure which Vector uses gives each Draw object a separate
- tag. There are 32 tags available and all items with the same tag number
- are considered to be on one ‘layer’ (the word layer is something of a
- misnomer, but I can’t think of a better word for the effect). The
- benefit of this layer tag is clear as soon as you realise that, in
- Vector, you can chose whether or not to display each layer and whether
- or not you want any layer selectable. The concept is explained well in
- the manual.
-
- For a single-sided PCB, you can, for instance, keep all copper tracks on
- one layer, copper pads on a second, drilling information on a third and
- silk screen (component information) on a fourth. You will probably put
- down pads first, then tracks. So make only the track layer selectable,
- select all items and move them to the back. Immediately, the pads are
- drawn correctly on top of the tracks and all the pad centre holes are
- immediately visible.
-
- Grouping works as in Draw but it also interacts with the layer
- structure. When you group a selection of objects, a separate ‘group’
- object is formed and this ‘indexes’ the individual objects. It is rather
- similar to forming a new directory on your disc and moving a group of
- files into the new directory. The files themselves don’t change.
-
- In a similar way, when you group a selection of objects, the layers of
- those individual objects don’t alter and the layer structure is retained
- ‘inside’ the new group. However, the group is created on the layer which
- you were working on when you created it. The group will be displayed
- with this layer, not with any of the layers of the objects within the
- group, so the layer information appears to be lost. However, when you
- ungroup the object, the individual objects within the group immediately
- fall back to their original layers. You can, of course, group groups
- together and the same thing applies. This is very similar in concept to
- the ADFS file structure.
-
- This structure can make layers very confusing if you don’t understand
- it. For example, if you create a new drawing (which will only have a
- single layer) and drop a grouped library item into it, the library item
- may disappear completely if it was created on a layer which does not
- exist in the new drawing. However, the grouped object will be there −
- add layers so the object’s layer exists in the drawing and the object
- will magically reappear.
-
- Ruler − Draw lacks any position information except for the grid. Vector
- has full position readout available on two rulers (which are scalable)
- which makes accurate technical drawing very easy. The grid is locked to
- the rulers and there is an option of setting the drawing origins
- anywhere on the page. You can also digitally read the current cursor
- position at any time. This is all exactly as requited for technical
- drawing.
-
- Overlay − Filling an open path has always seemed a little meaningless to
- me. In Vector you can chose an ‘overlay’ instead of a fill. This is
- specially useful in PCB work as, if you overlay a coloured path with
- white, make the end caps round and then edit the path to zero length,
- the result is a ‘donut’ of exactly the type we use for pads in PCB work
- for pads. The result is exactly the same as a standard circle with a
- defined line width, but is a lot easier to calculate (try getting a
- circle of 0.1“ external diameter the normal way) and takes up a lot less
- file space. Vector 1.10 is probably worth buying for this alone! The
- overlay facility is new to Vector 1.10.
-
- Library − Vector has a comprehensive library facility. Any Draw object,
- whether a single object or a group of objects, may be saved to a
- library. Libraries may be saved and loaded as required. A Library file
- has a special filetype, so you can start Vector by clicking on a Library
- file, and you can load a new library by clicking on it.
-
- The library has a separate viewer window, so you can see the selected
- library item before you use it.
-
- Once you have designed a standard resistor, capacitor, etc, save it to
- the library! You cannot really do PCB work without a good library
- facility. In fact, the standard of items in your library very much
- determines your overall style. I will end up with several PCB libraries
- − one for single-sided boards (with 0.09“ diameter pads on copper layer
- only) and a second for double-sided PTH boards (with 0.05” pads on both
- sides).
-
- There is, in the library menu, an option... ‘Reset layers’. If this is
- ticked, the group and every object within it is has its layer reset to
- the one you are working on when you load the library item. Be careful
- with this because, if it is not as you expect, confusion results.
-
- If you have the ‘Reset layers’ option unticked and the library item is
- on a layer other than zero, then another effect can occur with a new
- diagram. The new diagram will only have layer zero. If you pull in the
- non-zero layer library item, it disappears. Now, if you add layers, the
- library item will reappear when you add the layer it is on.
-
- Beware also of changing the layer of a grouped object. This not only
- moves the group but also resets every object within the group to be on
- the new layer.
-
- Jonathan Marten says that layers are one of the least used features in
- the package and it was difficult for him to decide how layers should
- work. I can well believe this but it does mean that, if you have any
- better ideas, we may be able to get him to alter the program, so let me
- know what you think.
-
- Merge and split
- Draw contains the concept of ‘Move’ within a path but it can be very
- difficult to implement moves in a sensible way. I require a move when I
- am trying to draw an area of copper with one oo more odd shaped holes in
- it. With DrawPlus, I found this difficult and with OakPCB it was nearly
- impossible as OakPCB doesn’t even include a Move facility in a path.
-
- With Vector it is easy: simply draw in the copper area as one filled
- object and each hole as a separate unfilled object. When the area and
- holes are exactly drawn to your satisfaction, select them all and apply
- ‘Merge paths’. All the objects become one and (if the winding rule is
- correct, which it is by default) the hole outlines appear correctly as
- holes in the copper area. Later, if you wish to move any holes, pick the
- object up and ‘Split to sub-paths’ to restore the copper area and the
- hole outlines. Very simple!
-
- Also, in laying down tracks, some are inevitably circuitous (no pun
- intended) and I find that, when editing, I keep selecting these. If so,
- I can select one and ‘Split to lines’. The object splits up to the
- appropriate number of paths with no nodes. This can be very helpful.
-
- Grid
- PCBs are normally laid out on 0.1“ grid, as this is the spacing between
- pins of an IC, so it has become the standard grid for PCBs. Vector, of
- course, has a 1” grid available. The basic grid can be subdivided into
- up to 100 subdivisions so, for PCB work, you will use 10 divisions or,
- more likely, 20 to give a basic 50 thou grid. For finer work, you can go
- to a grid of 40 or even 80 or 100 divisions. If so chosen, the objects,
- as they are created, will snap to this grid.
-
- There is a slight problem with Library items. When a library object is
- pasted into the diagram, how should it fit back onto the grid? Vector,
- by default, will try to fit the edges of the bounding box to the grid,
- but you can choose to lock the centre of the object to the grid.
- However, for PCB work, what you really need is that the centres of the
- pads be on your grid. Vector is not specific to PCBs so it has no
- concept of a pad. It is therefore up to you to make sure that your
- library objects are ‘symmetrical’ so that the pads end up where you want
- them on the grid you chose. Many of my library objects include an
- invisible path at the back, for just this reason.
-
- PCB design
- The arrangement of layers that I use is:
- 0 Copper side tracks lines, round end caps, no fill/overlay.
- 1 Copper side areas filled paths
- 2 Copper side pads zero length lines, round end caps, overlaid
- 3 Top side tracks as layer 1
- 4 Top side areas as layer 2
- 5 Top side pads as layer 3
- 6 Drilling marks for hole sizes, board outline, etc, comments to
- photographers/board producers
- 7 Silk screen
- 8 Outlines: board outlines and cropping which may require printing out
- with top and bottom side artwork
- 9 Grouped objects: Library items which may contain pads, silk screen,
- etc
- 10 Work in progress
-
- The reason for keeping topside and copper side information separate is
- obvious. However, why three layers for copper side? Firstly, I keep pads
- on their own layer so that they may be depth-sorted to lie on top of
- tracks so that the centre holes are correctly printed as explained
- above.
-
- The reason for separating tracks from areas is to do with printing. To
- get a good, black image, the printed object must be black − yet I need
- colours on screen to see what I am doing. I cannot pick tracks and areas
- up together as tracks are thick, unfilled lines which only require a
- line colour change whilst areas require a line and a fill colour to be
- specified. If I select a fill colour for tracks, I end up with filled
- lines which is not what I require. Separating like this, means that I
- can change the line colour only on layer 0 and line and fill colour on
- layer 1.
-
- Grouped objects are library items, containing all relevant draw objects,
- each with their correct layer information. This makes editing the layout
- relatively simple. All the grouping is done on layer 9. When the board
- is completed to my satisfaction, I lock the source file, so I won’t save
- over it. Then I simply make all layers unselectable except layer 9. I
- then ‘Select all’ to pick up everything on layer 9 and ‘ungroup’. All
- individual draw objects fall back to their correct layers. I then do a
- ‘comb sort’ selecting layer 1 only, move it to the top, layer 2 move to
- top and so on through to layer 9. Then I change colours as just
- discussed and do my printout.
-
- Thus, a typical library item (e.g. a resistor) will have two copperside
- pads (layer 3), two topside pads (layer 6), two pads on layer 7 (to
- indicate the hole size) and an outline (layer 8). These objects will all
- be grouped together on layer 9. If the resistor has a value or number
- attached to it, this is added to layer 8 after the library object is
- placed. The library object and value are then picked up and grouped
- again on layer 9. If a value change is later required, I can go to layer
- 9 (grouped), make only it and layer 7 (silk screen) selectable, pick up
- the object, ungroup it, alter the value then regroup it. Before
- printing, two ‘ungroup’ operations will disintegrate the drawing, ready
- for colour changes. If the library is PTH, then the same pads will do
- for top and bottom, so only one pad layer is needed.
-
- With the layer structure, I can also do my editing on a new layer, so I
- can see the Before and After effect. First create three new layers (say
- 10, 11 and 12). Next pick up everything you want to edit, move to the
- new layer 11 and group them. Make layer 11 invisible and unselectable −
- the group disappears. Move to layer 10, make everything except layer 11
- (the ‘before’ group) selectable. Select all and group it to protect it
- from change. Now move back to layer 11, select all and copy it. Move the
- copy back to exactly overlay the original and ungroup it. Make layer 11
- (the ‘before’ group) invisible.
-
- You now have a file with only certain objects editable: alter this as
- you want. Then make the ‘unchanged’ group’s layer unselectable, move to
- layer 12, select all (which will be all the edited objects) and group
- then.
-
- You can now switch between ‘before’ and ‘after’ to check your change by
- making layer 11 the current layer and invisible. Tick the icon
- ‘Automatic sel/vis switch’ so that when you step between layer 11 and
- 12, you can see the changes.
-
- The use of layers and grouping in this way make for some exciting
- possibilities as well as some potential for confusion. How about a
- modification file, where a complete modification history is present and
- can be viewed by stepping through the layers? Or if you want to alter
- your diagram, you can group the parts you wish to alter on a spare layer
- and turn this layer off; the grouped bits vanish from view. Now group
- the rest of the diagram on another spare layer but don’t turn them off,
- just make it unselectable. You can now make the changes and group them
- on a new layer. By turning the appropriate layers on and off you can see
- before and after views.
-
- Some examples
- One of the components I use is a relay. Its footprint is shown in the
- diagram. This has two rectangular slots in the top left corner which are
- 2.6mm × 1.1mm. The other pins of the relay require that it be drawn on a
- 1/20mm grid − this was no problem with Vector. Now this relay is a
- single pole ‘make’ relay − the top left contact is to be left
- unconnected. The second item is the copper track that I have in the
- library file for the relay, scaled ×2 so you can see it. This consists
- of two identical objects. Each object is a pair of rectangles with a
- move between them, so the inside is not filled, to represent the
- required slot. The second item shows the effect of applying this to the
- two objects − I have also applied ‘no fill’ so you can see them. In the
- third item, I have drawn a filled rectangle over the two original items
- to represent the copper area to which I am connecting. I have ‘split to
- subpaths’ the two objects, and deleted the outer box of the right hand
- one. Then I selected all four items and applied another ‘merge paths’.
- This makes them all into one item with moves where appropriate, so on
- the right I get a rectangular slot where the board has to be milled out
- and on the left I get a rectangular copper area with a rectangular clear
- area around it. When the board is milled out at the copper rectangle the
- relay contact will not connect, which is exactly what I require.
-
- This is very simple in Vector and, so far as I know, is either
- impossible or very difficult with other dedicated PCB design packages.
- In LinTrack, I would have had to use individual sections of line to do
- the job − easy if not very elegant. On OakPCB it was impossible to do
- accurately − Oak doesn’t allow for moves at all. CADMust has no
- facilities for non-round holes, I’m told, and although Silicon Vision
- won’t let me see an up-to-date copy of ArcPCB, the early version I do
- have cannot cope either.
-
- The library file has all the elements of the relay, except for the
- copper rectangles, grouped on layer 9. This group is then grouped again
- with the copper rectangles onto layer 9. Thus, when I have drawn the
- copper area into which it will fit, I can ungroup the relay, dropping
- the copper areas back onto layer 1, do the splitting and merging and get
- the required result. If I later decide to move the relay I can again
- split, delete the relay and replace it from the library with a new relay
- in the right place. Ungrouping will drop the copper areas in the right
- place again with no fuss.
-
- Paul’s not sure how it will come out in the printing, but the following
- diagram shows a PCB layout I have done with Vector.
-
- Editing
- It can be very difficult to get a PCB layout correct first time unless
- it is simple. It is probably easier to get a digital circuit right as
- interconnections between chips are well defined and spacing between
- chips can be relatively easily standardised, but with analogue circuits
- (which use a lot of discrete components) the first version of the
- circuit is not often correct and, during development, a lot of editing
- is necessary. Vector, it must be said, is not at its best during
- editing. However, editing is a difficult area for most PCB layout
- packages and, in comparison with other packages, Vector actually does
- very well indeed. More about editing next month.
-
- Summary
- Vector gives me, in a single package, a circuit design package, a PCB
- layout package, a technical drawing package and a general drawing
- package. I would love to find a dedicated PCB program which does better
- but I can’t, although I’m still looking. In the meanwhile, I enjoy using
- Vector. Using Vector for everything also simplifies my learning curve.
- However, be warned: Vector has no design rules to help you with PCB
- work: Vector will only do what you tell it. It won’t fight you but it is
- so versatile that you may easily confuse yourself. It can do just about
- anything you want − so it can be very easy to make it do something you
- don’t want, especially with the use of layers and grouping, so organise
- your thoughts.
-
- I have several future articles planned: next month I shall look at
- LinTrack and the LinTrack to Vector converter Jonathan Marten has
- written.
-
- How about PipeDream for parts listing, stock control, purchasing, letter
- answering, DTP and for general business use? I also want to get into
- SBase and how to use it for stock control. Circuit Analysis programs are
- on my list (a couple were reviewed last month) and I may also cover
- ArcFax and Prophet − incidentally Quentin Paine of Apricote Studios is
- working on a major update of this which I await with interest.
-
- RiscCAD
- Then there’s RiscCAD from Davyn Software. The programmer, David Buck,
- wants to write a PCB design package and I am in close contact with him.
- Now is your chance to get in on the ground floor and tell the programmer
- exactly what you do or do not want in a program. All suggestions to me
- please. We could get the program we all want if we act quickly.
-
- Fastrax
- There is also Fastrax from Techsoft. A pre-release copy of this arrived
- on my desk by this afternoon’s post. It looks very promising indeed.
- There is, as yet, no manual but the program seems pretty much self-
- explanatory. I have had a long chat with the programmer and − would you
- believe it − he used to work for Linear Graphics so, in effect, the
- program is taking over the legacy of LinTrack. Maybe that’s why I find
- it so interesting − more on this is sure to follow.
-
-
-